package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.SignalMachineDto;

import java.util.List;


/**
 * Created by smarteacup on 2017/7/25.
 */
public interface SignalMachineManageService {

    /**
     * @Description: 信号机dt展示
     * @Author: xu_jiaHui
     * @Date: 2017/7/25 19:57
     */
    public DTResponseDto getSignalMachine4DT(DTRequestDto dtRequestDto,
                                             String actorIds,
                                             Integer orgId,
                                             Boolean audit,
                                             String startRoad,
                                             String endRoad,
                                             Integer alarmBinding) throws Exception;

    /**
     * @Description: 信号机展示4app
     * @Author: xu_jiaHui
     * @Date: 2017/7/27 15:26
     */
    public List<SignalMachineDto> getSignalMachine4APP(String actorIds,
                                                       Integer orgId,
                                                       Integer mCount,
                                                       Integer mSize,
                                                       String city,
                                                       String startRoad,
                                                       String endRoad,
                                                       String alarmType) throws Exception;


    /**
     * @Description: 通过id获取信号机信息
     * @Author: xu_jiaHui
     * @Date: 2017/7/27 15:28
     */
    public SignalMachineDto getSignalMachineById(Integer signalMachineById) throws Exception;

    /**
     * @Description: 获取路段By路名
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getSectionByStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;


    /**
     * @Description: 删除信号机
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:00
     */
    public Integer deleteSignalMachine(String signalMachineIds) throws Exception;

    /**
     * @Description: 添加信号机
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:27
     */
    public Integer addSignalMachine(SignalMachineDto signalMachineDto) throws Exception;

    /**
     * @Description: 编辑信号机
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:28
     */
    public Integer updateSignalMachine(SignalMachineDto signalMachineDto) throws Exception;

    /**
     * @Description: 根据OrgId，actorId获取城市4App
     * @author xu_jiaHui
     * @date 2017/7/30 15:13
     */
    public List<String> getCity4SignalMachine(String actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据city获取路口4App
     * @author xu_jiaHui
     * @date 2017/7/30 15:24
     */
    public List<String> getStartRoadByCity(String city, String actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 获取信号机信息用于App地图展示
     * @author xu_jiaHui
     * @date 2017/8/3 14:15
     */
    public List<SignalMachineDto> getSignalMachine4Map4App(Integer orgId,
                                                           String actorId,
                                                           double neLongitude,
                                                           double neLatitude,
                                                           double swLongitude,
                                                           double swLatitude) throws Exception;

    /**
     * @Description: 审核信号机信息
     * @Author: xu_jiaHui
     * @Date: 2017/8/12 18:24
     */
    public Integer auditSignalMachine(String signalMachineIds) throws Exception;

    /**
     * @Description: 通过起始路段获取截止路APP段
     * @author xu_jiaHui
     * @date 2017/8/14 20:33
     */
    public List<String> getSectionByStartRoad4App(String city, String roadName, String actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 绑定报警器设备
     * @Author: WYX.
     * @Date: 2018/5/1 17:46.
     */
    public Integer bindingDevice(String deviceId, Integer signalMachineId) throws Exception;

    /**
     * @Description: 解绑设备
     * @Author: WYX.
     * @Date: 2018/5/1 17:47.
     */
    public Integer unbindingDevice(String deviceId, Integer signalMachineId)throws Exception;

    /**
     * @Description: 获取故障通知列表
     * @Author: WYX.
     * @Date: 2018/5/1 17:48.
     */
    public DTResponseDto showAlarmHistory(DTRequestDto dtRequestDto, String deviceId, Integer deviceType)throws Exception;

    public List<SignalMachineDto> getDeviceInfo(Integer deviceId) throws Exception;


}
